# -*- coding: utf-8 -*-
str1 = "xyz0123456"
hexStr = str1.encode('ASCII').hex()
print('字符串"%s"编码为ASCII字符串后转换为16进制字符串为"%s"' % (str1, hexStr))
theBytes = bytes.fromhex(hexStr)
str2 = theBytes.decode('ASCII')
print('十六进制字符串"%s"解码为ASCII字符串为"%s"' % (theBytes, str2))
print()  # 空行


str1 = "重庆市北碚区天生路2号"
# Python 3版本中，字符串是以Unicode编码
hexStr = str1.encode('utf-8').hex()
# 常用编码(大小写不敏感)：utf-8, ASCII, GBK 
print('字符串"%s"编码为ASCII字符串后转换为16进制字符串为"%s"' % (str1, hexStr))
theBytes = bytes.fromhex(hexStr)
# python 3.5之后，用bytes.fromhex把十六进制字符串转换为bytes
str2 = theBytes.decode('UTF-8')
print('十六进制字符串"%s"解码为UTF-8字符串为"%s"' % (theBytes, str2))
print()  # 空行

# 编码不对会出错
str1 = "重庆市北碚区天生路2号"
# Python 3版本中，字符串是以Unicode编码
hexStr = str1.encode('GBK').hex()
# 常用编码(大小写不敏感)：utf-8, ASCII, GBK
print('字符串"%s"编码为GBK字符串后转换为16进制字符串为"%s"' % (str1, hexStr))
theBytes = bytes.fromhex(hexStr)
# python 3.5之后，用bytes.fromhex把十六进制字符串转换为bytes
str2 = theBytes.decode('GBK')
print('十六进制字符串"%s"解码为GBK字符串为"%s"' % (theBytes, str2))
print()  # 空行

exit() #退出不再执行后边的代码

# 编码不对会出错
str1 = "重庆市北碚区天生路2号"
# Python 3版本中，字符串是以Unicode编码
hexStr = str1.encode('ASCII').hex()
# 常用编码(大小写不敏感)：utf-8, ASCII, GBK
print('字符串"%s"编码为ASCII字符串后转换为16进制字符串为"%s"' % (str1, hexStr))
theBytes = bytes.fromhex(hexStr)
# python 3.5之后，用bytes.fromhex把十六进制字符串转换为bytes
str2 = theBytes.decode('ASCII')
print('十六进制字符串"%s"解码为ASCII字符串为"%s"' % (theBytes, str2))
print()  # 空行